# StringIO 很多时候，数据读写不一定是文件，也可以在内存中读写。StringIO顾名思义就是在内存中读写str。
# 要把str写入StringIO，我们需要先创建一个StringIO，然后，像文件一样写入即可：
from io import StringIO
from io import BytesIO
f = StringIO()
f.writelines("To be or not to be")
f.write(" is a question!")
print(f.getvalue())
# 可以直接初始化
f2 = StringIO("good good study! \n day day up!")
while True:
    if f2.readline() == "":
        break
    print(f2.readline().strip())

# BytesIO StringIO操作的只能是str，如果要操作二进制数据，就需要使用BytesIO。
# BytesIO实现了在内存中读写bytes，我们创建一个BytesIO，然后写入一些bytes：
f3 = BytesIO()
f3.write("红旗".encode("UTF-8",errors="ignore"))
print(f3.getvalue())
f4 = BytesIO(b'\xe7\xba\xa2\xe6\x97\x97')
print(f4.getvalue())
